
import javax.swing.JOptionPane;

public class binfrase {

    public static int binarize(int num) {
        int num2 = num;
        int contatore = 0;
        int numero;
        String numer = "";
        while (num2 > 0) {
            num2 = num2 / 2;
            contatore++;
        }
        int[] resti = new int[contatore];
        contatore = 0;
        while (num > 0) {
            if (num != 0) {
                resti[contatore] = num % 2;
            } else {
                resti[contatore] = 1;
            }
            contatore++;
            num = num / 2;
        }
        contatore--;
        while (contatore >= 0) {
            numer = numer + resti[contatore];
            contatore--;
        }
        numero = Integer.parseInt(numer);
        return numero;
    }

    public static void main(String[] args) {
        String frase;
        String stampa = "";
        String stampa2 = "";
        int leng;
        int i = 0;
        frase = JOptionPane.showInputDialog("Inserire una frase da codificare in binario:");
        leng = frase.length();
        while (i < leng) {
            char carattere = frase.charAt(i);
            int car;
            car = (int) carattere;
            stampa = stampa + "| " + carattere + " |: " + binarize(car) + " \n";
            stampa2 = stampa2 + binarize(car);
            i++;
        }
        JOptionPane.showMessageDialog(null, "Frase: " + stampa2);
        JOptionPane.showMessageDialog(null, "Lettera per lettera: \n" + stampa);
        int copia = JOptionPane.showConfirmDialog(null,"Vuoi avere la possibilità di copiare la frase?");
        if (copia==0) {
            System.out.println("Copia da console: " + stampa2);
        }
    }
}
